package controlador;

import java.io.IOException;
import java.sql.Date;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import datos.AccionesCliente;
import datos.AccionesProducto;
import datos.AccionesProveedor;
import datos.AccionesUsuario;
import datos.Cliente;
import datos.Usuario;

/**
 * Servlet implementation class EditarUsuario
 */
public class EditarUsuario extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public EditarUsuario() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		HttpSession sesion = request.getSession();
		String user = (String) sesion.getAttribute("user");
		String pass = (String) sesion.getAttribute("pass");
		Usuario u = new Usuario(user, pass);
		String r = AccionesUsuario.reemplazar(this.getClass().getSimpleName());
		if(AccionesUsuario.validarUsuario(u)){
			if(AccionesUsuario.validarPermiso(u, r)){
			String idUsuario = request.getParameter("idUsuario");
			AccionesUsuario.deletePermisosUsuario(idUsuario);
			AccionesUsuario.bajaUsuario(idUsuario);
			response.sendRedirect("usuarios.jsp");
			}else{
				response.sendRedirect("index.jsp");
			}
		} else {
			response.sendRedirect("login.jsp");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		HttpSession sesion = request.getSession();
		String user = (String) sesion.getAttribute("user");
		String pass = (String) sesion.getAttribute("pass");
		Usuario u = new Usuario(user, pass);
		String r = AccionesUsuario.reemplazar(this.getClass().getSimpleName());
		if(AccionesUsuario.validarUsuario(u)){
			if(AccionesUsuario.validarPermiso(u, r)){
			String submit = request.getParameter("submit");
			if (submit.equals("Aceptar")) {

				String nombreUsuario = request.getParameter("nombreUsuario");
				if (AccionesUsuario.existeNombreUsuario(nombreUsuario)) {
					sesion.setAttribute("errorUsuario", true);
					response.sendRedirect("altaUsuario.jsp");
				} else {
					String password = request.getParameter("password");
					//String tipoUsuario = request.getParameter("tipoUsuario");
					int idTipoUsuario = 0;
					//if ("administrador".equals(tipoUsuario)) {
						//idTipoUsuario = 1;
					//} else if ("vendedor".equals(tipoUsuario)) {
						//idTipoUsuario = 2;
					//}

					Usuario usuario = new Usuario(nombreUsuario, password);

					
					String permisoVentas=request.getParameter("permisoVentas");
					String permisoCompras=request.getParameter("permisoCompras");
					String permisoClientes=request.getParameter("permisoClientes");
					String permisoProveedores=request.getParameter("permisoProveedores");
					String permisoStock=request.getParameter("permisoStock");
					String permisoUsuarios=request.getParameter("permisoUsuarios");
					String permisoOtrasConsultas=request.getParameter("permisoOtrasConsultas");
					ArrayList<String> permisos=new ArrayList<String>();
					permisos.add("index.jsp");
					permisos.add("otrasConsultas.jsp");
					switch (permisoVentas){
					case "Ver":
						permisos.add("ventas.jsp");
						permisos.add("resumenVenta.jsp");
						break;
					case "Editar":
						permisos.add("ventas.jsp");
						permisos.add("resumenVenta.jsp");
						permisos.add("registrarVenta.jsp");
						permisos.add("agregarProductosVenta.jsp");
						permisos.add("RegistrarVenta");
						break;
					}
					
					switch (permisoCompras){
					case "Ver":
						permisos.add("compras.jsp");
						permisos.add("resumenCompra.jsp");
						break;
					case "Editar":
						permisos.add("compras.jsp");
						permisos.add("resumenCompra.jsp");
						permisos.add("registrarCompra.jsp");
						permisos.add("agregarProductosCompra.jsp");
						permisos.add("altaProductoExistente.jsp");
						permisos.add("altaProductoNuevo.jsp");
						permisos.add("modificarProductoCompra.jsp");
						permisos.add("resumenNuevoProducto.jsp");
						permisos.add("RegistrarCompra");
						permisos.add("EditarProducto");
						break;
					}
					switch (permisoStock){
					case "Ver":
						permisos.add("stock.jsp");
						permisos.add("FiltraStock");
						break;
					case "Editar":
						permisos.add("stock.jsp");
						permisos.add("FiltraStock");
						permisos.add("modificarProducto.jsp");
						permisos.add("EditarProducto");
						break;
					}
					switch (permisoClientes){
					case "Ver":
						permisos.add("clientes.jsp");
						permisos.add("detalleCuenta.jsp");
						break;
					case "Editar":
						permisos.add("clientes.jsp");
						permisos.add("detalleCuenta.jsp");
						permisos.add("altaCliente.jsp");
						permisos.add("modificaCliente.jsp");
						permisos.add("ingresarPago.jsp");
						permisos.add("EditarCliente");
						break;
					}
					switch (permisoProveedores){
					case "Ver":
						permisos.add("proveedores.jsp");
						break;
					case "Editar":
						permisos.add("proveedores.jsp");
						permisos.add("altaProveedor.jsp");
						permisos.add("modificaProveedor.jsp");
						permisos.add("EditarProveedor");
						break;
					}
					switch (permisoOtrasConsultas){
					case "Ver":
						permisos.add("marcas.jsp");
						permisos.add("lineas.jsp");
						permisos.add("categorias.jsp");
						permisos.add("variacionCostos.jsp");
						permisos.add("variacionPrecios.jsp");
						permisos.add("variacionRentabilidad.jsp");
						permisos.add("VariacionCostos");
						permisos.add("VariacionPrecios");
						permisos.add("VariacionRentabilidad");
						break;
					case "Editar":
						permisos.add("marcas.jsp");
						permisos.add("modificarMarca.jsp");
						permisos.add("lineas.jsp");
						permisos.add("categorias.jsp");
						permisos.add("altaMarca.jsp");
						permisos.add("altaLinea.jsp");
						permisos.add("altaCategoria.jsp");
						permisos.add("AltaCategoria");
						permisos.add("AltaMarca");
						permisos.add("AltaLinea");
						permisos.add("ModificarMarca");
						permisos.add("variacionCostos.jsp");
						permisos.add("variacionPrecios.jsp");
						permisos.add("variacionRentabilidad.jsp");
						permisos.add("VariacionCostos");
						permisos.add("VariacionPrecios");
						permisos.add("VariacionRentabilidad");
						break;
					}
					switch (permisoUsuarios){
					case "Ver":
						permisos.add("usuarios.jsp");
						permisos.add("modificaUsuario.jsp");
						permisos.add("EditarUsuario");
						break;
					case "Editar":
						permisos.add("usuarios.jsp");
						permisos.add("altaUsuario.jsp");
						permisos.add("modificaUsuario.jsp");
						permisos.add("EditarUsuario");
						break;
					}
					AccionesUsuario.altaUsuario(usuario, permisoVentas, permisoCompras, permisoStock, permisoClientes, permisoProveedores, permisoOtrasConsultas, permisoUsuarios);
					AccionesUsuario.addPermisos(permisos, usuario);
					sesion.setAttribute("errorUsuario", false);
					response.sendRedirect("altaUsuario.jsp");
					}
					
				
			} else if (submit.equals("Modificar")) {
				String nombreUsuarioAnterior = request
						.getParameter("nombreUsuarioAnterior");
				String nombreUsuario = request.getParameter("nombreUsuario");
				String password = request.getParameter("password");
				String permisoUsuariosUser=request.getParameter("permisoUsuariosUser");
				Usuario us2=AccionesUsuario.getUsuarioById(user);
				boolean existe = false;

				
				if (!nombreUsuarioAnterior.equals(nombreUsuario)) {
					existe = AccionesUsuario.existeNombreUsuario(nombreUsuario);
				}

				if (!existe && us2.getPermisoUsuarios().equals("Ver")) {
					//System.out.println("anterior "+nombreUsuarioAnterior);
					//System.out.println("nuevo "+nombreUsuario);
					ArrayList<String> permisos3=AccionesUsuario.getPermisosById(nombreUsuarioAnterior);
					//System.out.println(permisos3.size());
					AccionesUsuario.deletePermisosUsuario(nombreUsuarioAnterior);
					if(nombreUsuario==null && password==null){
						AccionesUsuario.modificaUsuarioVer(nombreUsuarioAnterior,nombreUsuarioAnterior, pass);
						AccionesUsuario.updateNombreUsuarioRecurso(nombreUsuarioAnterior, nombreUsuarioAnterior, permisos3);
					}else{
					AccionesUsuario.modificaUsuarioVer(nombreUsuarioAnterior,nombreUsuario, password);
					AccionesUsuario.updateNombreUsuarioRecurso(nombreUsuarioAnterior, nombreUsuario, permisos3);
					}
					sesion.setAttribute("user", nombreUsuario);
					sesion.setAttribute("pass", password);
					sesion.setAttribute("errorUsuarioModif", false);
					sesion.setAttribute("redireccionServletUsuario", false);
					response.sendRedirect("usuarios.jsp");
					
				}else if(!existe && us2.getPermisoUsuarios().equals("Editar")){ 
					Usuario us=AccionesUsuario.getUsuarioById(nombreUsuarioAnterior);
					String permisoVentasAnt=us.getPermisoVentas();
					String permisoComprasAnt=us.getPermisoCompras();
					String permisoClientesAnt=us.getPermisoClientes();
					String permisoProveedoresAnt=us.getPermisoProveedores();
					String permisoStockAnt=us.getPermisoStock();
					String permisoUsuariosAnt=us.getPermisoUsuarios();
					String permisoOtrasConsultasAnt=us.getPermisoOtrasConsultas();
					String permisoVentas=request.getParameter("permisoVentas");
					String permisoCompras=request.getParameter("permisoCompras");
					String permisoClientes=request.getParameter("permisoClientes");
					String permisoProveedores=request.getParameter("permisoProveedores");
					String permisoStock=request.getParameter("permisoStock");
					String permisoUsuarios=request.getParameter("permisoUsuarios");
					String permisoOtrasConsultas=request.getParameter("permisoOtrasConsultas");
					//ArrayList<String> permisos=new ArrayList<String>();
					ArrayList<String> permisos2=AccionesUsuario.getPermisosById(nombreUsuarioAnterior);
					
					if(permisoClientes.equals(permisoClientesAnt)){
						
					}else if(permisoClientesAnt.equals("Editar") && permisoClientes.equals("Ver")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaCliente.jsp") || permisos2.get(i).equals("modificaCliente.jsp") || permisos2.get(i).equals("ingresarPago.jsp") || permisos2.get(i).equals("EditarCliente")){
								permisos2.remove(i);
							}
						}
					}else if(permisoClientesAnt.equals("Editar") && permisoClientes.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaCliente.jsp") || permisos2.get(i).equals("modificaCliente.jsp") || permisos2.get(i).equals("ingresarPago.jsp") || permisos2.get(i).equals("EditarCliente") || permisos2.get(i).equals("clientes.jsp") || permisos2.get(i).equals("detalleCuenta.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoClientesAnt.equals("Ver") && permisoClientes.equals("Editar")){
						permisos2.add("altaCliente.jsp");
						permisos2.add("modificaCliente.jsp");
						permisos2.add("ingresarPago.jsp");
						permisos2.add("EditarCliente");
					}else if(permisoClientesAnt.equals("Ver") && permisoClientes.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("clientes.jsp") || permisos2.get(i).equals("detalleCuenta.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoClientesAnt.equals("Ocultar") && permisoClientes.equals("Ver")){
						permisos2.add("clientes.jsp");
						permisos2.add("detalleCuenta.jsp");
					}else if(permisoClientesAnt.equals("Ocultar") && permisoClientes.equals("Editar")){
						permisos2.add("clientes.jsp");
						permisos2.add("detalleCuenta.jsp");
						permisos2.add("altaCliente.jsp");
						permisos2.add("modificaCliente.jsp");
						permisos2.add("ingresarPago.jsp");
						permisos2.add("EditarCliente");
					}
					
					if(permisoVentas.equals(permisoVentasAnt)){
						
					}else if(permisoVentasAnt.equals("Editar") && permisoVentas.equals("Ver")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("registrarVenta.jsp") || permisos2.get(i).equals("agregarProductosVenta.jsp") || permisos2.get(i).equals("RegistrarVenta")){
								permisos2.remove(i);
							}
						}
					}else if(permisoVentasAnt.equals("Editar") && permisoVentas.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("registrarVenta.jsp") || permisos2.get(i).equals("agregarProductosVenta.jsp") || permisos2.get(i).equals("RegistrarVenta") || permisos2.get(i).equals("ventas.jsp") || permisos2.get(i).equals("resumenVenta.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoVentasAnt.equals("Ver") && permisoVentas.equals("Editar")){
						permisos2.add("registrarVenta.jsp");
						permisos2.add("agregarProductosVenta.jsp");
						permisos2.add("RegistrarVenta");
					}else if(permisoVentasAnt.equals("Ver") && permisoVentas.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("ventas.jsp") || permisos2.get(i).equals("resumenVenta.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoVentasAnt.equals("Ocultar") && permisoVentas.equals("Ver")){
						permisos2.add("ventas.jsp");
						permisos2.add("resumenVenta.jsp");
					}else if(permisoVentasAnt.equals("Ocultar") && permisoVentas.equals("Editar")){
						permisos2.add("ventas.jsp");
						permisos2.add("agregarProductosVenta.jsp");
						permisos2.add("registrarVenta.jsp");
						permisos2.add("resumenVenta.jsp");
						permisos2.add("RegistrarVenta");
					}
					
					if(permisoCompras.equals(permisoComprasAnt)){
						
					}else if(permisoComprasAnt.equals("Editar") && permisoCompras.equals("Ver")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("registrarCompra.jsp") || permisos2.get(i).equals("agregarProductosCompra.jsp") || permisos2.get(i).equals("RegistrarCompra") || permisos2.get(i).equals("altaProductoExistente.jsp") || permisos2.get(i).equals("altaProductoNuevo.jsp") || permisos2.get(i).equals("modificarProductoCompra.jsp") || permisos2.get(i).equals("resumenNuevoProducto.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoComprasAnt.equals("Editar") && permisoCompras.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("registrarCompra.jsp") || permisos2.get(i).equals("agregarProductosCompra.jsp") || permisos2.get(i).equals("RegistrarCompra") || permisos2.get(i).equals("altaProductoExistente.jsp") || permisos2.get(i).equals("altaProductoNuevo.jsp") || permisos2.get(i).equals("modificarProductoCompra.jsp") || permisos2.get(i).equals("resumenNuevoProducto.jsp") || permisos2.get(i).equals("resumenCompra.jsp") || permisos2.get(i).equals("compras.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoComprasAnt.equals("Ver") && permisoCompras.equals("Editar")){
						permisos2.add("altaProductoExistente.jsp");
						permisos2.add("agregarProductosCompra.jsp");
						permisos2.add("registrarCompra.jsp");
						permisos2.add("altaProductoNuevo.jsp");
						permisos2.add("RegistrarCompra");
						permisos2.add("modificarProductoCompra.jsp");
						permisos2.add("resumenNuevoProducto.jsp");
						permisos2.add("EditarProducto");
					}else if(permisoComprasAnt.equals("Ver") && permisoCompras.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("resumenCompra.jsp") || permisos2.get(i).equals("compras.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoComprasAnt.equals("Ocultar") && permisoCompras.equals("Ver")){
						permisos2.add("compras.jsp");
						permisos2.add("resumenCompra.jsp");
					}else if(permisoComprasAnt.equals("Ocultar") && permisoCompras.equals("Editar")){
						permisos2.add("compras.jsp");
						permisos2.add("resumenCompra.jsp");
						permisos2.add("altaProductoExistente.jsp");
						permisos2.add("agregarProductosCompra.jsp");
						permisos2.add("registrarCompra.jsp");
						permisos2.add("altaProductoNuevo.jsp");
						permisos2.add("RegistrarCompra");
						permisos2.add("modificarProductoCompra.jsp");
						permisos2.add("resumenNuevoProducto.jsp");
						permisos2.add("EditarProducto");
					}
					
					if(permisoProveedores.equals(permisoProveedoresAnt)){
						
					}else if(permisoProveedoresAnt.equals("Editar") && permisoProveedores.equals("Ver")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaProveedor.jsp") || permisos2.get(i).equals("modificaProveedor.jsp") || permisos2.get(i).equals("EditarProveedor")){
								permisos2.remove(i);
							}
						}
					}else if(permisoProveedoresAnt.equals("Editar") && permisoProveedores.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaProveedor.jsp") || permisos2.get(i).equals("modificaProveedor.jsp") || permisos2.get(i).equals("EditarProveedor") || permisos2.get(i).equals("proveedores.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoProveedoresAnt.equals("Ver") && permisoProveedores.equals("Editar")){
						permisos2.add("altaProveedor.jsp");
						permisos2.add("modificaProveedor.jsp");
						permisos2.add("EditarProveedor");
					}else if(permisoProveedoresAnt.equals("Ver") && permisoProveedores.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("proveedores.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoProveedoresAnt.equals("Ocultar") && permisoProveedores.equals("Ver")){
						permisos2.add("proveedores.jsp");
					}else if(permisoProveedoresAnt.equals("Ocultar") && permisoProveedores.equals("Editar")){
						permisos2.add("proveedores.jsp");
						permisos2.add("altaProveedor.jsp");
						permisos2.add("modificaProveedor.jsp");
						permisos2.add("EditarProveedor");
					}
					
					if(permisoStock.equals(permisoStockAnt)){
						
					}else if(permisoStockAnt.equals("Editar") && permisoStock.equals("Ver")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("modificarProducto.jsp") || permisos2.get(i).equals("EditarProducto")){
								permisos2.remove(i);
							}
						}
					}else if(permisoStockAnt.equals("Editar") && permisoStock.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("modificarProducto.jsp") || permisos2.get(i).equals("EditarProducto") || permisos2.get(i).equals("stock.jsp") || permisos2.get(i).equals("FiltraStock")){
								permisos2.remove(i);
							}
						}
					}else if(permisoStockAnt.equals("Ver") && permisoStock.equals("Editar")){
						permisos2.add("modificarProducto.jsp");
						permisos2.add("EditarProducto");
					}else if(permisoStockAnt.equals("Ver") && permisoStock.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("stock.jsp") || permisos2.get(i).equals("FiltraStock")){
								permisos2.remove(i);
							}
						}
					}else if(permisoStockAnt.equals("Ocultar") && permisoStock.equals("Ver")){
						permisos2.add("stock.jsp");
						permisos2.add("FiltraStock");
					}else if(permisoStockAnt.equals("Ocultar") && permisoStock.equals("Editar")){
						permisos2.add("modificarProducto.jsp");
						permisos2.add("EditarProducto");
						permisos2.add("stock.jsp");
						permisos2.add("FiltraStock");
					}
					
					if(permisoUsuarios.equals(permisoUsuariosAnt)){
						
					}else if(permisoUsuariosAnt.equals("Editar") && permisoUsuarios.equals("Ver")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaUsuario.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoUsuariosAnt.equals("Editar") && permisoUsuarios.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaUsuario.jsp") || permisos2.get(i).equals("usuarios.jsp") || permisos2.get(i).equals("modificaUsuario.jsp") || permisos2.get(i).equals("EditarUsuario") ){
								permisos2.remove(i);
							}
						}
					}else if(permisoUsuariosAnt.equals("Ver") && permisoUsuarios.equals("Editar")){
						permisos2.add("altaUsuario.jsp");
					}else if(permisoUsuariosAnt.equals("Ver") && permisoUsuarios.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("usuarios.jsp") || permisos2.get(i).equals("modificaUsuario.jsp") || permisos2.get(i).equals("EditarUsuario") ){
								permisos2.remove(i);
							}
						}
					}else if(permisoUsuariosAnt.equals("Ocultar") && permisoUsuarios.equals("Ver")){
						permisos2.add("usuarios.jsp");
						permisos2.add("modificaUsuario.jsp");
						permisos2.add("EditarUsuario");
					}else if(permisoUsuariosAnt.equals("Ocultar") && permisoUsuarios.equals("Editar")){
						permisos2.add("altaUsuario.jsp");
						permisos2.add("usuarios.jsp");
						permisos2.add("modificaUsuario.jsp");
						permisos2.add("EditarUsuario");
					}
					
					if(permisoOtrasConsultas.equals(permisoOtrasConsultasAnt)){
						
					}else if(permisoOtrasConsultasAnt.equals("Editar") && permisoOtrasConsultas.equals("Ver")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaMarca.jsp") || permisos2.get(i).equals("altaLinea.jsp") || permisos2.get(i).equals("altaCategoria.jsp") || permisos2.get(i).equals("AltaMarca") || permisos2.get(i).equals("AltaLinea") || permisos2.get(i).equals("AltaCategoria") || permisos2.get(i).equals("ModificarMarca") || permisos2.get(i).equals("modificarMarca.jsp")){
								permisos2.remove(i);
							}
						}
					}else if(permisoOtrasConsultasAnt.equals("Editar") && permisoOtrasConsultas.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("altaMarca.jsp") || permisos2.get(i).equals("altaLinea.jsp") || permisos2.get(i).equals("altaCategoria.jsp") || permisos2.get(i).equals("AltaMarca") || permisos2.get(i).equals("AltaLinea") || permisos2.get(i).equals("AltaCategoria") || permisos2.get(i).equals("ModificarMarca") || permisos2.get(i).equals("modificarMarca.jsp") || permisos2.get(i).equals("marcas.jsp") || permisos2.get(i).equals("lineas.jsp") || permisos2.get(i).equals("categorias.jsp") || permisos2.get(i).equals("variacionCostos.jsp") || permisos2.get(i).equals("variacionPrecios.jsp") || permisos2.get(i).equals("variacionRentabilidad.jsp") || permisos2.get(i).equals("VariacionCostos") || permisos2.get(i).equals("VariacionPrecios") || permisos2.get(i).equals("VariacionRentabilidad")){
								permisos2.remove(i);
							}
						}
					}else if(permisoOtrasConsultasAnt.equals("Ver") && permisoOtrasConsultas.equals("Editar")){
						permisos2.add("altaMarca.jsp");
						permisos2.add("altaLinea.jsp");
						permisos2.add("altaCategoria.jsp");
						permisos2.add("AltaMarca");
						permisos2.add("AltaLinea");
						permisos2.add("AltaCategoria");
						permisos2.add("ModificarCategoria");
						permisos2.add("modificarCategoria.jsp");
					}else if(permisoOtrasConsultasAnt.equals("Ver") && permisoOtrasConsultas.equals("Ocultar")){
						for(int i=0; i<permisos2.size(); i++){
							if(permisos2.get(i).equals("marcas.jsp") || permisos2.get(i).equals("lineas.jsp") || permisos2.get(i).equals("categorias.jsp") || permisos2.get(i).equals("variacionCostos.jsp") || permisos2.get(i).equals("variacionPrecios.jsp") || permisos2.get(i).equals("variacionRentabilidad.jsp") || permisos2.get(i).equals("VariacionCostos") || permisos2.get(i).equals("VariacionPrecios") || permisos2.get(i).equals("VariacionRentabilidad")){
								permisos2.remove(i);
							}
						}
					}else if(permisoOtrasConsultasAnt.equals("Ocultar") && permisoOtrasConsultas.equals("Ver")){
						permisos2.add("marcas.jsp");
						permisos2.add("lineas.jsp");
						permisos2.add("categorias.jsp");
						permisos2.add("VariacionCostos");
						permisos2.add("VariacionPrecios");
						permisos2.add("VariacionRentabilidad");
						permisos2.add("variacionCostos.jsp");
						permisos2.add("variacionPrecios.jsp");
						permisos2.add("variacionRentabilidad.jsp");
					}else if(permisoOtrasConsultasAnt.equals("Ocultar") && permisoOtrasConsultas.equals("Editar")){
						permisos2.add("altaMarca.jsp");
						permisos2.add("altaLinea.jsp");
						permisos2.add("altaCategoria.jsp");
						permisos2.add("AltaMarca");
						permisos2.add("AltaLinea");
						permisos2.add("AltaCategoria");
						permisos2.add("ModificarCategoria");
						permisos2.add("modificarCategoria.jsp");
						permisos2.add("marcas.jsp");
						permisos2.add("lineas.jsp");
						permisos2.add("categorias.jsp");
						permisos2.add("VariacionCostos");
						permisos2.add("VariacionPrecios");
						permisos2.add("VariacionRentabilidad");
						permisos2.add("variacionCostos.jsp");
						permisos2.add("variacionPrecios.jsp");
						permisos2.add("variacionRentabilidad.jsp");
					}
					
					System.out.println("anterior "+nombreUsuarioAnterior);
					System.out.println("nuevo "+nombreUsuario);
					
					AccionesUsuario.deletePermisosUsuario(nombreUsuarioAnterior);
					if(nombreUsuario==null && password==null){
						String pass2=us.getPass();
						AccionesUsuario.modificaUsuarioEditar(nombreUsuarioAnterior, nombreUsuarioAnterior, pass2, permisoVentas, permisoCompras, permisoStock, permisoClientes, permisoProveedores, permisoOtrasConsultas, permisoUsuarios);
						AccionesUsuario.updateNombreUsuarioRecurso(nombreUsuarioAnterior, nombreUsuarioAnterior, permisos2);
					}else{
					AccionesUsuario.modificaUsuarioEditar(nombreUsuarioAnterior, nombreUsuario, password, permisoVentas, permisoCompras, permisoStock, permisoClientes, permisoProveedores, permisoOtrasConsultas, permisoUsuarios);
					AccionesUsuario.updateNombreUsuarioRecurso(nombreUsuarioAnterior, nombreUsuario, permisos2);
					}
					//sesion.setAttribute("user", nombreUsuario);
					//sesion.setAttribute("pass", password);
					sesion.setAttribute("errorUsuarioModif", false);
					sesion.setAttribute("redireccionServletUsuario", false);
					response.sendRedirect("usuarios.jsp");
				}else {
					sesion.setAttribute("errorUsuarioModif", true);
					sesion.setAttribute("redireccionServletUsuario", true);
					response.sendRedirect("modificaUsuario.jsp");
				}
			}
			}else{
				response.sendRedirect("index.jsp");
			}
		} else {
			response.sendRedirect("login.jsp");
		}

	}

}
